package com.linkit.main;

import android.widget.RelativeLayout;

import com.linkit.exception.FTExceptions;

public abstract class AbstractPage implements OnBackPressedListener{
	/**layout lưu trữ thông tin của trang*/
	protected RelativeLayout layout;
	
	/**
	 * hiện thị thông tin trang
	 */
	public void showPages(){
		
		setControllerId();
		
		//hiện thị thông tin header
		showHeader();
		
		//Lưu trữ thông tin layout
		setLayout();
		
		//hiện thị nội dung
		showContent();
	}
	
	/**
	 * Lưu trữ control điều khiển cho trang
	 */
	public abstract void setControllerId();
	
	/**
	 * thiết lập layout của trang
	 */
	protected abstract void setLayout();
	
	/**
	 * hiện thị thông tin của header
	 */
	public abstract void showHeader();
	
	/**
	 * hiện thị nội dung trang
	 */
	public abstract void showContent();
	
	/**
	 * Xử lý các ngoại lệ cho trang hiện thị nếu có.
	 * Có thể override ở các lớp con để xử lý các ngoại lệ
	 * @param e
	 */
	public void handleExceptions(FTExceptions e) {
		MainActivity.getInstance().runOnUiThread(new Runnable() {
			
			@Override
			public void run() {
				MainActivity.getInstance().showToast(R.string.error_alert);
				
			}
		});
	}
	
	/**Lấy layout để xử lý thông tin*/
	public RelativeLayout getLayout() {
		return layout;
	}
}
